#ifndef EVENT_H
#define EVENT_H


#include "player.h"
#include "item.h"
#include "navigation.h"

class CEvent
{
public:
	typedef enum T_ActionType
	{
		AnytimeInputAction,
		MustInputAction,
	};

	typedef enum T_AnytimeInputAction	// Any time availabe		
	{
		EquipItem,
		ShowItem,
		TradeItem,
		PublicTrade
	};
	typedef enum T_MustInputAction	// Only available when Inputable = 1 and mutually exclusive
	{
		SelectItem,
		TakeAction,
		AgreeOrNot,
		TakeInCombat,
		EdgeRegretCombat,
		UnderdogRegretCombat,
		ChooseRobItem,
		ChooseStealItem,
		ChooseNavigation,
		UseItem,   // When one overboard, fish and buoy availabe
	};

	typedef enum T_TakeAction	
	{
		Act_SwitchSeat,
		Act_Boating,
		Act_Rob,
		Act_Steal,
		Act_UseItem,
		Act_Nothing
	};
	typedef enum T_TakeInCombat
	{
		Cbt_Out,
		Cbt_Offense,
		Cbt_Deffense
	};


	struct
	{
		T_ActionType type;
		union 
		{
			T_AnytimeInputAction any;
			T_MustInputAction must;
		};
		union
		{
			T_TakeAction act;
			T_TakeInCombat cbt;
		};
		CItem::T_CardIndex item;
		//CPlayer::T_PlayerIndex source_player;
		//CPlayer::T_PlayerIndex target_player;
		CNavigation::T_CardIndex nav;

	} content;
};

#endif